package com.ruoyi.monitor.mapper;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.ruoyi.monitor.domain.BusWaterAutomonitorevaluateHourdata;
import com.ruoyi.monitor.domain.BusWaterIntegrationevaluatedata;
import org.apache.ibatis.annotations.Param;

/**
 * 手工站综合断面评价（月）Mapper接口
 * 
 * @author maliang
 * @date 2025-08-16
 */
public interface BusWaterIntegrationevaluatedataMapper 
{
    /**
     * 查询手工站综合断面评价（月）
     * 
     * @param segmentid 手工站综合断面评价（月）主键
     * @return 手工站综合断面评价（月）
     */
    public BusWaterIntegrationevaluatedata selectBusWaterIntegrationevaluatedataBySegmentid(String segmentid);

    /**
     * 查询手工站综合断面评价（月）列表
     * 
     * @param busWaterIntegrationevaluatedata 手工站综合断面评价（月）
     * @return 手工站综合断面评价（月）集合
     */
    public List<BusWaterIntegrationevaluatedata> selectBusWaterIntegrationevaluatedataList(BusWaterIntegrationevaluatedata busWaterIntegrationevaluatedata);

    public List<BusWaterIntegrationevaluatedata> selectLastData(BusWaterIntegrationevaluatedata busWaterAutomonitorevaluateHourdata);

    /**
     * 新增手工站综合断面评价（月）
     * 
     * @param busWaterIntegrationevaluatedata 手工站综合断面评价（月）
     * @return 结果
     */
    public int insertBusWaterIntegrationevaluatedata(BusWaterIntegrationevaluatedata busWaterIntegrationevaluatedata);

    /**
     * 修改手工站综合断面评价（月）
     * 
     * @param busWaterIntegrationevaluatedata 手工站综合断面评价（月）
     * @return 结果
     */
    public int updateBusWaterIntegrationevaluatedata(BusWaterIntegrationevaluatedata busWaterIntegrationevaluatedata);

    /**
     * 删除手工站综合断面评价（月）
     * 
     * @param segmentid 手工站综合断面评价（月）主键
     * @return 结果
     */
    public int deleteBusWaterIntegrationevaluatedataBySegmentid(String segmentid);

    /**
     * 批量删除手工站综合断面评价（月）
     * 
     * @param segmentids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteBusWaterIntegrationevaluatedataBySegmentids(String[] segmentids);

    public List<Map> statisItemCount(@Param("id") String id, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    public List<Map> qualityLevelStatis(@Param("id") String id, @Param("startTime") Date startTime,@Param("endTime") Date endTime);

    public List<Map> trendStatis(@Param("id") String id, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
    List<Map> qualityLevelDistribution(@Param("idList") List<String> idList,@Param("startTime") Date startTime,@Param("endTime") Date endTime,@Param("controlLevelCode") String controlLevelCode);

    List<Map> standardDistribution(@Param("idList") List<String> idList,@Param("startTime") Date startTime,@Param("endTime") Date endTime,@Param("controlLevelCode") String controlLevelCode);
}
